/**
 * 
 */
package com.naiterui.ehp.bs.recommend.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.naiterui.ehp.bp.utils.date.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 推荐用药列表
 * @author guoyongxiang
 * @since 2.2.0
 */
@ApiModel(value = "推荐用药列表VO")
public class RecomLiteVO implements Serializable {

    /**
     * 字段或域定义：<code>serialVersionUID</code>
     */
    private static final long serialVersionUID = 4686782757941606882L;
    @ApiModelProperty(value = "推荐id")
    private Long id;
    @ApiModelProperty(value = "患者ID")
    private Long patientId;
    @ApiModelProperty(value = "患者姓名")
    private String name;
    @ApiModelProperty(value = "患者备注名")
    private String remarkName;
    @ApiModelProperty(value = "患者头像")
    private String headUrl;
    @ApiModelProperty(value = "推荐用药是否购药，0：未购，1：已购，3：少购买，4：已取消，5：已作废， 6：已作废处方，已购买， 7： 已作废处方，少购买")
    private Integer status;
    @ApiModelProperty(value = "推荐用药是否购药文本内容(已购买；未购买；少购买；已取消；已作废；已作废处方，已购买；已作废处方，少购买)")
    private String statusInfo;
    @ApiModelProperty(value = "推荐用药商品")
    private List<RecomSkuVO> skus;
    @ApiModelProperty(value = "推荐时间")
    private Date createdAt;

    //==========医生端优化1.1新增以下字段
    @ApiModelProperty(value = "就诊人名称")
    private String patientName;
    @ApiModelProperty(value = "就诊人性别 0:女,1:男")
    private Integer patientGender;
    @ApiModelProperty(value = "就诊人年龄")
    private String patientAgeStr;
    @ApiModelProperty(value = "共几种药")
    private Integer skusSize;
    @ApiModelProperty(value = "处方来源（0:求药，1:图文，2:视频）")
    private Integer recomSource;
    @ApiModelProperty(value = "失效状态0全部，1超时未审核，2审核不通过，3超时未购买")
    private Integer invalidStatus;
    @ApiModelProperty(value = "原因")
    private String remark;
    @ApiModelProperty(value = "诊断信息")
    private String diagnosis;
    @ApiModelProperty(value = "诊断时间")
    @JsonFormat(pattern = DateUtil.DATE_FORMAT)
    private Date diagnosisDate;

    public Date getDiagnosisDate() {
        return diagnosisDate;
    }

    public void setDiagnosisDate(Date diagnosisDate) {
        this.diagnosisDate = diagnosisDate;
    }

    public String getDiagnosis() {
        return diagnosis;
    }

    public void setDiagnosis(String diagnosis) {
        this.diagnosis = diagnosis;
    }

    public Integer getInvalidStatus() {
        return invalidStatus;
    }

    public void setInvalidStatus(Integer invalidStatus) {
        this.invalidStatus = invalidStatus;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getPatientName() {
        return patientName;
    }

    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }

    public Integer getPatientGender() {
        return patientGender;
    }

    public void setPatientGender(Integer patientGender) {
        this.patientGender = patientGender;
    }

    public String getPatientAgeStr() {
        return patientAgeStr;
    }

    public void setPatientAgeStr(String patientAgeStr) {
        this.patientAgeStr = patientAgeStr;
    }

    public Integer getSkusSize() {
        return skusSize;
    }

    public void setSkusSize(Integer skusSize) {
        this.skusSize = skusSize;
    }

    public Integer getRecomSource() {
        return recomSource;
    }

    public void setRecomSource(Integer recomSource) {
        this.recomSource = recomSource;
    }

    /**
     * 构造函数
     */
    public RecomLiteVO() {
        super();
    }

    /**
     * 构造函数
     * @param id
     * @param patientId
     * @param name
     * @param remarkName
     * @param createdAt
     */
    public RecomLiteVO(Long id, Long patientId, Date createdAt, Integer status) {
        super();
        this.id = id;
        this.patientId = patientId;
        this.name = "";
        this.remarkName = "";
        this.createdAt = createdAt;
        this.status = status;
        this.headUrl = "";
    }

    /**
     * 构造函数
     * @param id
     * @param patientId
     * @param name
     * @param remarkName
     * @param createdAt
     */
    public RecomLiteVO(Long id, Long patientId, String name, String remarkName, String headUrl, Date createdAt, Integer status) {
        super();
        this.id = id;
        this.patientId = patientId;
        this.name = name;
        this.remarkName = remarkName;
        this.createdAt = createdAt;
        this.status = status;
        this.headUrl = headUrl;
    }

    /**
     * @return Long 取得域 id 的方法。
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id 对域 id 的设置方法.
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return Long 取得域 patientId 的方法。
     */
    public Long getPatientId() {
        return patientId;
    }

    /**
     * @param patientId 对域 patientId 的设置方法.
     */
    public void setPatientId(Long patientId) {
        this.patientId = patientId;
    }

    /**
     * @return String 取得域 name 的方法。
     */
    public String getName() {
        return name;
    }

    /**
     * @param name 对域 name 的设置方法.
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return String 取得域 remarkName 的方法。
     */
    public String getRemarkName() {
        return remarkName;
    }

    /**
     * @param remarkName 对域 remarkName 的设置方法.
     */
    public void setRemarkName(String remarkName) {
        this.remarkName = remarkName;
    }

    /**
     * @return Integer 取得域 status 的方法。
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * @param status 对域 status 的设置方法.
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getStatusInfo() {
        return statusInfo;
    }

    public void setStatusInfo(String statusInfo) {
        this.statusInfo = statusInfo;
    }

    /**
     * @return List<RecomSkuVO> 取得域 skus 的方法。
     */
    public List<RecomSkuVO> getSkus() {
        return skus;
    }

    /**
     * @param skus 对域 skus 的设置方法.
     */
    public void setSkus(List<RecomSkuVO> skus) {
        this.skus = skus;
    }

    /**
     * @return Date 取得域 createdAt 的方法。
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * @param createdAt 对域 createdAt 的设置方法.
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * @return String 取得域 headUrl 的方法。
     */
    public String getHeadUrl() {
        return headUrl;
    }

    /**
     * @param headUrl 对域 headUrl 的设置方法.
     */
    public void setHeadUrl(String headUrl) {
        this.headUrl = headUrl;
    }

}
